package com.xdhl.fu.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xdhl.fu.flight.info.api.mongodb.domain.MGReservation;
import com.xdhl.fu.order.domain.ChangeBody;
import com.xdhl.fu.order.domain.OrderInfo;
import com.xdhl.fu.order.domain.RefundBody;
import com.xdhl.fu.order.domain.vo.OrderInfoVO;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * 订单信息
 * Service接口
 *
 * @author 朱力维
 * @time 2022/5/29 17:00
 */
public interface IOrderInfoService extends IService<OrderInfo> {

    /**
     * 统计前16实时热门城市
     *
     * @return 统计前16实时热门城市
     */
    List<OrderInfoVO> countHotCityTop16();

    /**
     * 查询会员所有订单
     *
     * @return 订单列表
     */
    Page<MGReservation> listMemberOrder();

    /**
     * 查询会员改期中的订单
     *
     * @return 改期中订单列表
     */
    List<OrderInfo> listMemberChangeOrder();

    /**
     * 查询会员待支付订单列表
     *
     * @return 待支付订单列表
     */
    List<OrderInfo> listUnpaid();

    /**
     * 会员申请退票
     *
     * @param refundBody 退票所需数据
     * @return 是否退票成功
     */
    public boolean refund(RefundBody refundBody);

    /**
     * 会员申请改签
     *
     * @param changeBody 会员改签信息
     * @return 是否改签成功
     */
    public boolean change(ChangeBody changeBody);
}